#pragma once


struct list_head {
	struct list_head *next, *prev;
};

typedef struct {
	struct list_head head;
	void *ptr;
} arraylist_t, *parraylist_t;

parraylist_t arraylist_new();
int arraylist_free(parraylist_t list);

int arraylist_add(parraylist_t list, void *item);

int arraylist_delbyindex(parraylist_t list, int index);
int arraylist_delbyitem(parraylist_t list, void *item);

int arraylist_count(parraylist_t list);